# -*- coding: latin-1 -*-

'''
#Linguagens de Programação - 2º Ano - 2º Semestre - Linguagem de Programação C
#Autor: Duarte Peres / Nº5621

#test.py - Módulo Python com menu tendo o utilizador a possibilidade de escolher 
		  as estatísticas ou listas que pretende visualizar. Este módulo chama todos
		  os outros módulos através do teachers.i.
'''

#import do módulo principal

import teachers

#Menu onde o utilizador pode fazer a sua escolha

print " MENU:\n\
####Statistics####\n\
1 - total number of teachers in the higher education system per year;\n\
2 - total number of teachers per establishment and per year;\n\
3 - total number of teachers per degree and per year;\n\
4 - total number of teachers per degree, per establishment and per year.\n\
####Lists####\n\
5 - list of establishments per year;\n\
6 - list of holders of a degree per year;\n\
7 - personnel leaving the institution and new personnel in the institution per year;\n"

#Valor introduzido pelo utilizador e guardado na variável
value = raw_input("Enter option: ")

# Se for igual a 1 realiza a primeira estatística
if(value == '1'):
    for i in range(10):
		total = teachers.queryPerYear(i)
		print "Total number of teachers in the year 200%d: %d" % (i,total)
		pass
# Se for igual a 2 realiza a segunda estatística
elif(value == '2'):
	#utilizador introduz o nome do estabelecimento que será argumento do método 
	establishment = raw_input("Enter the name of the establishment:")
   	for i in range(10):
		totalAnoEstab = teachers.queryPerEstablishmentPerYear(i,establishment)
		print "Total number of teachers in the year 200%d and establishment %s: %d" % (i,establishment,totalAnoEstab)
		pass
# Se for igual a 3 realiza a terceira estatística
elif(value == '3'):
	#utilizador introduz o nome do grau que será argumento do método
	degree = raw_input("Enter the degree:")
	for i in range(10):
		totalAnoGrau = teachers.queryPerDegreePerYear(i, degree)
		print "Total number of teachers in the year 200%d and degree %s: %d" % (i,degree,totalAnoGrau)
		pass
# Se for igual a 4 realiza a quarta estatística
elif(value == '4'):
	#utilizador introduz o nome do estabelecimento que será argumento do método
	establishment = raw_input("Enter the name of the establishment:")
	#utilizador introduz o nome do grau que também será argumento do método
	degree = raw_input("Enter the degree:")
	for i in range(10):
		totalAnoGrauEsta = teachers.queryPerEstablishmentPerDegreePerYear(i, establishment, degree)
		print "Total number of teachers in the year 200%d and degree %s and establishment %s: %d" % (i,degree, establishment,totalAnoGrauEsta)
		pass
# Se for igual a 5 realiza a listagem dos estabelecimentos
elif(value == '5'):
	for i in range(10):
		listaEstAno = teachers.queryListEstablishmentPerYear(i)
		print "List of teachers in the year 200%d:\n %s" % (i,listaEstAno)
		pass
		
# Se for igual a 6 realiza a listagem dos titulares por ano e grau
elif(value == '6'):
	#utilizador introduz o nome do grau que será argumento do método
	degree = raw_input("Enter the degree:")
	for i in range(10):
		listTitularesGrauAno = teachers.queryListHoldersPerDegreePerYear(i, degree)
		print "List of teachers in the year 200%d and establishmet %s:\n %s" % (i,degree,listTitularesGrauAno)
# Se for igual a 7 realiza a listagem das pessoas que abandonaram ou são novas numa instituição  
elif(value == '7'):
	#utilizador introduz o nome do estabelecimento que será argumento do método
	establishment = raw_input("Enter the name of the establishment:")
	for i in range(10):
		#chamo o módulo da contagem dos anos
		total = teachers.queryNumDocentes(i,establishment)
		total1 = teachers.queryNumDocentes(i+1,establishment)
		#realiza-se um subtracção entre os valores dos diferentes anos 
		diference = total - total1
		listLeaveEntry = teachers.queryListLeavingOREntry(i, establishment)
		#verifica-se o resultado da subtracção é < 0 , pois se for um valor negativo
		#quer dizer que são pessoas novas na instituição, se for igual 0, nao tem qualquer
		#alteração e por fim se for um valor positivo quer dizer que são pessoas que abandonaram.
		if(diference < 0):
			print "List of the new personnel in the year 200%d and establishment %s:\n %s" % (i,establishment,listLeaveEntry)
		elif(diference == 0):
			print "In the year 200%d and establishment %s no change" % (i,establishment)
		else:
			print "List of personnel leaving the institution in the year 200%d and establishment %s:\n %s" % (i,establishment,listLeaveEntry)
else:
	#caso não introduzir nenhum valor existente no menu
    print "Option does not exist!"

